Technical Field
This application relates generally to data communication over a network.
Brief Description of the Related Art
Distributed computer systems are well-known in the prior art. One such distributed computer system is a “content delivery network” or “CDN” that typically is operated and managed by a service provider. The service provider typically provides the content delivery service on behalf of third parties (customers) who use the service provider's shared infrastructure. A distributed system of this type is sometimes referred to as an “overlay network” and typically refers to a collection of autonomous computers linked by a network or networks, together with the software, systems, protocols and techniques designed to facilitate various services, such as content delivery, application acceleration, or other support of outsourced origin site infrastructure. A CDN service provider typically provides service delivery through digital properties (such as a website), which are provisioned in a customer portal and then deployed to the network.
Overlay networks of the type described provide HTTP-based streaming from a server in the network, to a client that receives a video stream and plays it back to a screen. Clients may be running on a desktop computer, mobile device (smart phones, tablets), set-top-boxes, smart televisions or appliances, or any other network-connected devices. For a typical HTTP-based streaming use case, the client resolves a name (e.g., a CDN hostname) through DNS to an IP address and makes a TCP connection to the server associated with that address. Once established, the client sends an HTTP GET request for the desired content, e.g., a media fragment. The server responds with the content data in a standard HTTP response body. The connection is kept open for further requests and responses.
Standard approaches using the Hypertext Transfer Protocol (HTTP) make a request over HTTP protocol (on top of a Transmission Control Protocol/Internet Protocol (TCP/IP) connection) and receive the response containing the requested data in the HTTP response (over the same TCP/IP connection). Alternative streaming approaches use a protocol on top of User Datagram Protocol (UDP) or TCP for both requests and responses (including control messages). Still other approaches tunnel some protocol through an HTTP session.
Today many end users experience problems with HTTP-based streaming, such as slow startup times, rebuffering, and low bitrates. Connectivity of these users often shows large enough bandwidth for high-quality video, but the round-trip times and packet loss characteristics between the server and the client negatively affect streaming performance, primarily because standard TCP-based implementations operate inefficiently on such networks.
There is thus a need to provide new techniques to improve video streaming quality. The disclosure herein addresses these and other problems associated with the relevant prior art.